The invention relates generally to a method for storing and reading data elements to and from a memory. More particularly, the invention relates further to a related memory controller, a computing system, a data processing program, and a computer program product. In computer systems numeric values are represented as values with a defined precision. However, values with a higher precision require more memory space when they are stored, higher bandwidth for a movement from the memory to the processor of the computer system and in many cases also longer processing time if manipulated by the CPU (central processing unit). On the other side, it may not always be required to use the full precision of a variable. For example, for estimate calculations the variable in its lowest precision can be sufficient for a calculation of a good estimated result. In other cases, if the most accurate result possible can be required the variable can be used in its maximum precision available within the computer system, i.e., with a maximum number of bits. Thus, there can be a trade-off between computing speed, memory requirements and precision of a calculation. But at the same time, it may be a waste of memory resources to store every variable or data element in each precision available for potential calculations. Storing only the widest data words and potentially down-sizing it, can result in performance losses of the computer system.
There are several disclosures related to a method for storing and reading data elements to and from a memory in different precisions. One disclosure includes systems and methods for processing variable precision data using tags to identify the precision of digits within data words. One embodiment includes a processor having internal structures that are configured to present a variable precision data word as a variable number of digits, with each digit including a digital value and associated tags indicative of the digit's position within the data word.
Another discloses systems and methods for processing data using an array of data processing elements that are coupled together with a variable precision interconnect. One embodiment includes data processing elements coupled by variable precision interconnects to form a row-column array. However, there can be a need for memory space savings when handling variables with a variable precision which are instrumental in high processing speed.